// Generated from C:/Users/luzhihao/Desktop/workplace/shizhen_compiler/src/main/java/org/example/grammar/SZCGrammar.g4 by ANTLR 4.13.1
package org.example.grammar;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link SZCGrammarParser}.
 */
public interface SZCGrammarListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#prog}.
	 * @param ctx the parse tree
	 */
	void enterProg(SZCGrammarParser.ProgContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#prog}.
	 * @param ctx the parse tree
	 */
	void exitProg(SZCGrammarParser.ProgContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#abstractStatement}.
	 * @param ctx the parse tree
	 */
	void enterAbstractStatement(SZCGrammarParser.AbstractStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#abstractStatement}.
	 * @param ctx the parse tree
	 */
	void exitAbstractStatement(SZCGrammarParser.AbstractStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#returnStatement}.
	 * @param ctx the parse tree
	 */
	void enterReturnStatement(SZCGrammarParser.ReturnStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#returnStatement}.
	 * @param ctx the parse tree
	 */
	void exitReturnStatement(SZCGrammarParser.ReturnStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#blockStatement}.
	 * @param ctx the parse tree
	 */
	void enterBlockStatement(SZCGrammarParser.BlockStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#blockStatement}.
	 * @param ctx the parse tree
	 */
	void exitBlockStatement(SZCGrammarParser.BlockStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#funcDef}.
	 * @param ctx the parse tree
	 */
	void enterFuncDef(SZCGrammarParser.FuncDefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#funcDef}.
	 * @param ctx the parse tree
	 */
	void exitFuncDef(SZCGrammarParser.FuncDefContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#funcName}.
	 * @param ctx the parse tree
	 */
	void enterFuncName(SZCGrammarParser.FuncNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#funcName}.
	 * @param ctx the parse tree
	 */
	void exitFuncName(SZCGrammarParser.FuncNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#block}.
	 * @param ctx the parse tree
	 */
	void enterBlock(SZCGrammarParser.BlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#block}.
	 * @param ctx the parse tree
	 */
	void exitBlock(SZCGrammarParser.BlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#exp}.
	 * @param ctx the parse tree
	 */
	void enterExp(SZCGrammarParser.ExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#exp}.
	 * @param ctx the parse tree
	 */
	void exitExp(SZCGrammarParser.ExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#primaryExp}.
	 * @param ctx the parse tree
	 */
	void enterPrimaryExp(SZCGrammarParser.PrimaryExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#primaryExp}.
	 * @param ctx the parse tree
	 */
	void exitPrimaryExp(SZCGrammarParser.PrimaryExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#unaryExp}.
	 * @param ctx the parse tree
	 */
	void enterUnaryExp(SZCGrammarParser.UnaryExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#unaryExp}.
	 * @param ctx the parse tree
	 */
	void exitUnaryExp(SZCGrammarParser.UnaryExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#unaryOp}.
	 * @param ctx the parse tree
	 */
	void enterUnaryOp(SZCGrammarParser.UnaryOpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#unaryOp}.
	 * @param ctx the parse tree
	 */
	void exitUnaryOp(SZCGrammarParser.UnaryOpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#mulExp}.
	 * @param ctx the parse tree
	 */
	void enterMulExp(SZCGrammarParser.MulExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#mulExp}.
	 * @param ctx the parse tree
	 */
	void exitMulExp(SZCGrammarParser.MulExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#addExp}.
	 * @param ctx the parse tree
	 */
	void enterAddExp(SZCGrammarParser.AddExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#addExp}.
	 * @param ctx the parse tree
	 */
	void exitAddExp(SZCGrammarParser.AddExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#relExp}.
	 * @param ctx the parse tree
	 */
	void enterRelExp(SZCGrammarParser.RelExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#relExp}.
	 * @param ctx the parse tree
	 */
	void exitRelExp(SZCGrammarParser.RelExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#eqExp}.
	 * @param ctx the parse tree
	 */
	void enterEqExp(SZCGrammarParser.EqExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#eqExp}.
	 * @param ctx the parse tree
	 */
	void exitEqExp(SZCGrammarParser.EqExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#lAndExp}.
	 * @param ctx the parse tree
	 */
	void enterLAndExp(SZCGrammarParser.LAndExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#lAndExp}.
	 * @param ctx the parse tree
	 */
	void exitLAndExp(SZCGrammarParser.LAndExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#lOrExp}.
	 * @param ctx the parse tree
	 */
	void enterLOrExp(SZCGrammarParser.LOrExpContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#lOrExp}.
	 * @param ctx the parse tree
	 */
	void exitLOrExp(SZCGrammarParser.LOrExpContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#lval}.
	 * @param ctx the parse tree
	 */
	void enterLval(SZCGrammarParser.LvalContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#lval}.
	 * @param ctx the parse tree
	 */
	void exitLval(SZCGrammarParser.LvalContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#initVal}.
	 * @param ctx the parse tree
	 */
	void enterInitVal(SZCGrammarParser.InitValContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#initVal}.
	 * @param ctx the parse tree
	 */
	void exitInitVal(SZCGrammarParser.InitValContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#varDef}.
	 * @param ctx the parse tree
	 */
	void enterVarDef(SZCGrammarParser.VarDefContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#varDef}.
	 * @param ctx the parse tree
	 */
	void exitVarDef(SZCGrammarParser.VarDefContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#varDefStatement}.
	 * @param ctx the parse tree
	 */
	void enterVarDefStatement(SZCGrammarParser.VarDefStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#varDefStatement}.
	 * @param ctx the parse tree
	 */
	void exitVarDefStatement(SZCGrammarParser.VarDefStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#varDeclStatement}.
	 * @param ctx the parse tree
	 */
	void enterVarDeclStatement(SZCGrammarParser.VarDeclStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#varDeclStatement}.
	 * @param ctx the parse tree
	 */
	void exitVarDeclStatement(SZCGrammarParser.VarDeclStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#conditionCombine}.
	 * @param ctx the parse tree
	 */
	void enterConditionCombine(SZCGrammarParser.ConditionCombineContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#conditionCombine}.
	 * @param ctx the parse tree
	 */
	void exitConditionCombine(SZCGrammarParser.ConditionCombineContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#ifElseStatement}.
	 * @param ctx the parse tree
	 */
	void enterIfElseStatement(SZCGrammarParser.IfElseStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#ifElseStatement}.
	 * @param ctx the parse tree
	 */
	void exitIfElseStatement(SZCGrammarParser.IfElseStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#whileStatement}.
	 * @param ctx the parse tree
	 */
	void enterWhileStatement(SZCGrammarParser.WhileStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#whileStatement}.
	 * @param ctx the parse tree
	 */
	void exitWhileStatement(SZCGrammarParser.WhileStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#breakStatement}.
	 * @param ctx the parse tree
	 */
	void enterBreakStatement(SZCGrammarParser.BreakStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#breakStatement}.
	 * @param ctx the parse tree
	 */
	void exitBreakStatement(SZCGrammarParser.BreakStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SZCGrammarParser#continueStatement}.
	 * @param ctx the parse tree
	 */
	void enterContinueStatement(SZCGrammarParser.ContinueStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SZCGrammarParser#continueStatement}.
	 * @param ctx the parse tree
	 */
	void exitContinueStatement(SZCGrammarParser.ContinueStatementContext ctx);
}